﻿using System.Diagnostics.Contracts;

namespace System
{
	internal static class Tuple
	{
		public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2)
		{
			Contract.Ensures(Contract.Result<Tuple<T1, T2>>() != null);

			return new Tuple<T1, T2>(item1, item2);
		}

		public static Tuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3)
		{
			Contract.Ensures(Contract.Result<Tuple<T1, T2, T3>>() != null);

			return new Tuple<T1, T2, T3>(item1, item2, item3);
		}
	}
}